package javajess;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;


public class Conversation1 {

	public static void main (String[]args) {
		// variables locales
		BufferedReader  fichierAB = null;
		BufferedReader fichierCM = null;
		String texte = null;
                String texteAB = null;
		String texteCM = null;
                String tAB = null;
		String tCM = null;
                PrintWriter writer;
                
		
                
		//recuperation des contenus des fichiers AB et CM dans les variables locales
		try {
		    fichierAB = new BufferedReader(new FileReader("AB-transcription_ipu.TextGrid"));
                    fichierCM= new BufferedReader(new FileReader("CM-transcription_ipu.TextGrid"));	
                    try {
                        //création des variables pour récupérer les lignes en cours
                        String lineAB;
                        String lineCM;
                        //tant qu'on a des lignes sur les deux fichiers
                        while ((lineAB = fichierAB.readLine()) != null&&(lineCM = fichierCM.readLine()) != null) {
                            //si les lignes ne sont pas vides
                            if (lineAB!=null && lineCM!=null){
                       
                                if (lineAB.contains("xmin") || lineAB.contains("xmax")) {//si la ligne du fichier AB contient les mots xmin ou xmax
                                    texteAB+=lineAB+"\t"; //on stocke le texte AB qui nous interesse dans une variable afin de l'enregistrer par la suite
                                    tAB+=lineAB+"\t";//on récupère laligne dans une variable temporaire
                                 }
                                if (lineAB.contains("text")) {//si la ligne du fichier AB contient le mot text
                                     texteAB+=lineAB+"\n"; //on stocke pour le fichier AB final
                                     tAB+=lineAB+"\t"; // on met dans une variable temporaire
                                     texte+=tAB+"\n"; //on stocke dans la variable pour le texte de fusion
                                     tAB=null; //on met la variable temporaire a null, on l efface
                                }
                               //idem pour CM     
                                if (lineCM.contains("xmin") || lineCM.contains("xmax")) {
                                    texteCM+=lineCM+"\t";
                                    tCM+=lineCM+"\t";
                                }
                                if (lineCM.contains("text")) {
                                    texteCM+=lineCM+"\n";
                                    tCM+=lineCM+"\n";
                                    texte+=tCM+"\n";
                                    tCM=null;                        
                                }
                           }
                    }
                   } finally {
                    // dans tous les cas, on ferme nos flux
                    fichierAB.close();
                    fichierCM.close();
                  }
            } catch (IOException ioe) {
                    // erreur de fermeture des flux
                    System.out.println("Erreur --" + ioe.toString());
            }  
		
                              
		//si le texte de fusion n'est pas vide
		if (texte!=null){
			try{
				writer = new PrintWriter(new FileWriter("conversationAB-CMFusion.txt"));
				writer.println(texte); // enregistre dans le fichier
				writer.close();
                                System.out.println("le fichier conversationAB-CMFusion.txt a été créé  ");
			}catch(IOException e){
			}
		}else {
                    System.out.println ("il n'y a pas de texte fusion à enregistrer");
                }
                
                //sauvegarde texte AB
                if (texteAB!=null){
			try{
				writer = new PrintWriter(new FileWriter("conversationAB.txt"));
				writer.println(texteAB); // enregistre dans le fichier
				writer.close();
                                System.out.println("le fichier conversationAB.txt a été créé  ");
			}catch(IOException e){
			}
		}else {
                    System.out.println ("il n'y a pas de texte AB à enregistrer");
                }
                
                //sauvegarde texte CM
                if (texteCM!=null){
			try{
                                writer = new PrintWriter(new FileWriter("conversationCM.txt"));
				writer.println(texteCM); // enregistre dans le fichier
				writer.close();
                                System.out.println("le fichier conversationCM.txt a été créé  ");
			}catch(IOException e){
			}
		}else {
                    System.out.println ("il n'y a pas de texte CM à enregistrer");
                }
               
        }
}
	
